/*
表单验证：
    1、用户名：单词长度，8-20位
    2、密码：单词长度，8-20位
    3、email：邮件格式
    4、姓名：非空
    5、手机号：手机号格式
    6、出生日期：非空
    7、验证码：非空
 */

// 校验用户名 单词长度，8-20位
function checkUsername() {
    // 1、获取用户名的值
    var username = $("#username").val();
    // 2、定义正则表达式
    var reg_username = /^\w{8,20}$/;
    // 3、判断，给出提示信息
    var flag = reg_username.test(username);
    if (flag) {
        // 用户名合法
        $("#username").css("border", "");
        $("#username_label").css("display", "none");
    } else {
        // 用户名不合法
        $("#username").css("border", "1px solid red");
        $("#username_label").css("display", "block");
    }
    return flag;
}

// 校验密码 单词长度，8-20位
function checkPassword() {
    // 1、获取密码的值
    var password = $("#password").val();
    // 2、定义正则表达式
    var reg_password = /^\w{8,20}$/;
    // 3、判断，给出提示信息
    var flag = reg_password.test(password);
    if (flag) {
        // 密码合法
        $("#password").css("border", "");
        $("#password_label").css("display", "none");
    } else {
        // 密码不合法
        $("#password").css("border", "1px solid red");
        $("#password_label").css("display", "block");
    }
    return flag;
}

// 校验邮箱
function checkEmail() {
    var email = $("#email").val();
    var reg_email = /^\w+@\w+\.\w+$/;
    var flag = reg_email.test(email);
    if (flag) {
        $("#email").css("border", "");
        $("#email_label").css("display", "none");
    } else {
        $("#email").css("border", "1px solid red");
        $("#email_label").css("display", "block");
    }
    return flag;
}

// 校验姓名
function checkName() {
    var name = $("#name").val();
    if (!name) {
        $("#name").css("border", "1px solid red");
        $("#name_label").css("display", "block");
        return false;
    } else {
        $("#name").css("border", "");
        $("#name_label").css("display", "none");
        return true;
    }
}

// 校验手机号 手机号格式
function checkTelephone() {
    var telephone = $("#telephone").val();
    var reg_telephone = /^1[3456789]\d{9}$/;
    var flag = reg_telephone.test(telephone);
    if (flag) {
        $("#telephone").css("border", "");
        $("#telephone_label").css("display", "none");
    } else {
        $("#telephone").css("border", "1px solid red");
        $("#telephone_label").css("display", "block");
    }
    return flag;
}

// 校验出生日期 非空
function checkBirthday() {
    var birthday = $("#birthday").val();
    if (!birthday) {
        $("#birthday").css("border", "1px solid red");
        $("#birthday_label").css("display", "block");
        return false;
    } else {
        $("#birthday").css("border", "");
        $("#birthday_label").css("display", "none");
        return true;
    }
}

// 校验验证码 非空
function checkCheck() {
    var check = $("#check").val();
    if (!check) {
        $("#check").css("border", "1px solid red");
        $("#check_label").css("display", "block");
        return false;
    } else {
        $("#check").css("border", "");
        $("#check_label").css("display", "none");
        return true;
    }
}

$(function () {
    // 当某一个组件失去焦点的时候，调用对应的校验方法
    $("#username").blur(checkUsername);
    $("#password").blur(checkPassword);
    $("#email").blur(checkEmail);
    $("#name").blur(checkName);
    $("#telephone").blur(checkTelephone);
    $("#birthday").blur(checkBirthday);
})

$(document).ready(function () {

    $("#registerForm").submit(function (event) {
        event.preventDefault(); // 阻止表单默认提交行为

        // 1.发送数据到服务器     // 当表单提交的时候，调用所有的校验方法
        if (checkUsername() && checkPassword() && checkEmail() && checkTelephone() && checkBirthday()) {
            // // 校验通过，发送ajax请求，提交表单的数据
            // $.post("../register", $("#registerForm").serialize(), function (response) {
            //   // 处理服务器响应的数据 data {flag:true,errorMsg:"注册失败！"}
            //   if (response.success === 1) {
            //       alert("注册成功");
            //     // 注册成功，跳转成功页面
            //     location.href = "../html/login.html";
            //   } else {
            //     // 注册失败，给errorMsg中添加提示信息
            //       alert(response.msg);
            //   }
            // });
            // 获取用户名和密码
            const username = $("#username").val();
            const password = $("#password").val();
            const email = $("#email").val();
            const name = $("#name").val();
            const telephone = $("#telephone").val();
// 获取性别单选框组的值
            const sex = $("#sex").filter(":checked").val();
            const birthday = $("#birthday").val();

            // 构建请求数据对象
            var requestData = {
                username: username,
                password: password,
                email: email,
                name: name,
                telephone: telephone,
                sex: sex,
                birthday: birthday
            };

            // 发送 Ajax 请求
            $.ajax({
                url: "/register",
                type: "POST",
                contentType: "application/json",
                // data: JSON.stringify($("#registerForm").serialize()),
                data: JSON.stringify(requestData),
                success: function (response) {
                    // 处理响应
                    if (response.success === 1) {
                        alert("注册成功");
                        // 进行跳转或其他操作
                        window.location.href = 'login.html'
                    } else {
                        alert(response.msg);
                    }
                },
                error: function () {
                    alert("请求失败");
                }
            });
        }
        // 2.跳转页面
        return false;
        // 如果这个方法没有返回值或者返回为true，则表单提交，如果返回为false，则表单不提交
    });
});